请先登录

搞完 Hermes Kanban 我才发现,多 Agent 协作根本不是在演戏

778 字

搞完 Hermes Kanban 我才发现,多 Agent 协作根本不是在演戏

来源:htmlDecode("林月半子的AI笔记")

原文链接:https://mp.weixin.qq.com/s/Bk4IlfT2sG4X5jFXxPd8iQ


关注   「 ** 林月半子的AI笔记 ** 」 , 设为 「 ** 星标 ** 」 我是林月半子, 教你用AI干掉90%的重复劳动 ** ! **

上个月我分享过一篇  Hermes 多 Agent 管理 ,有好评也有讽刺,在我看来有争议才是好事,都是流量。

最近 Hermes 更新后,出了一个  Kanban  的功能。做过敏捷开发的同学应该秒懂——每天站会盯着那块白板,谁的卡片卡在哪一列,一眼就知道。

但这个 Kanban 可不是给人用的。

移动卡片的不是人,是 Agent。状态流转、失败重试、Agent 交接——全自动。思路跟之前一样,不让一个 Agent 干所有的事,把大任务拆小,分给不同角色,各干各的。

上一篇我提过, 协作是能力的放大器,不是补丁 。放到 Kanban 里也一样。

说实话这个操作,真的有点像团队里项目经理拆完需求,往看板上一贴,各人领各人的活。

只不过这次领活的全是 AI。

两个入口,同一块看板

Hermes Kanban 有两套操作方式:Agent 那边通过内置的工具函数( kanban_create 、 kanban_complete 、 kanban_block  等)自动驱动看板;你这边通过  hermes kanban ...  命令行或者  /kanban  斜杠命令来操作。

两套入口读写的是同一个  kanban.db ,数据完全一致——Agent 在里面干活,你在外面看进度、留言、解除阻塞,互不冲突。

飞书、Discord、Telegram 这些网关里也能直接用  /kanban list 、 /kanban create  操作看板,不用切到终端。

🎯
如果你用过飞书的话,想象一下,你在飞书群里发一句  /kanban create "写一篇Kanban教程" --assignee writer ,然后切到浏览器看 Dashboard,任务已经在看板上了,Agent 正在认领、执行。这个体感,跟你在飞书里给同事派活没什么区别。

从零开始:先跑通一个最简单的任务

别着急搞什么多 Agent 并行、任务依赖链。我们先从最基础的开始:创建一个任务,让一个 Agent 把它做完。

第一步:准备 Profile

Hermes 里的 Profile 就是你给 Agent 准备的"岗位说明书"。你想让它干什么活,就给它配什么身份。

如果你还没创建过 Profile,先建几个常用的:
hermes profiles create researcher    # 调研员
hermes profiles create writer        # 写手
hermes profiles create coder         # 开发者
hermes profiles create video-worker  # 视频创作者

每个 Profile 可以配自己的技能(Skills)、工具(Tools)和记忆(Memory)。这不是今天的重点,知道有这回事就行。

第二步:初始化 Kanban + 启动网关

hermes kanban init        # 创建 kanban.db(其实这步可以省,第一次跑任何 kanban 命令都会自动初始化)
hermes gateway start      # 启动网关,里面内置了 Dispatcher(调度器) 💡
Dispatcher 你可以理解成一个"工头"。它每隔 60 秒扫一遍看板,看看有没有 Ready 状态的任务,有的话就分配给对应的 Agent 去干。Agent 崩了、超时了,它也负责回收和重新分配。
hermes dashboard          # 打开浏览器看看 Kanban 长什么样

六列状态从左到右:Triage(待梳理)→ Todo(待办)→ Ready(就绪)→ In Progress(进行中)→ Blocked(阻塞)→ Done(完成)。

第三步:创建一个任务

hermes kanban create  "make a video about kanban"  \
    --assignee video-worker \
    --tenant video-pipeline

这条命令做了三件事: 1. 在看板上新建了一张卡片 2. 指定  video-worker  这个 Profile 来干活 3. 用  --tenant  给任务打了个标签,方便按项目筛选

跑完之后,Dispatcher 下一次扫描(最多等 60 秒)就会把这个任务分配给  video-worker ,然后自动启动一个 Agent 进程来执行。

你也可以点 Dashboard 上的"Nudge dispatcher"按钮,让它立刻调度,不用等。

如果任务被 Blocked 了

新手最容易在这里懵。你兴高采烈地创建了任务,结果一看状态——blocked。
hermes kanban list
Board: default (1 other board — hermes kanban boards list)

⊘ t_058c4d9c   blocked    video-worker   [video-pipeline]  make a video about kanban

别慌, Blocked 不是报错,是 Agent 在等你的输入。

我只说了"make a video about kanban",Agent 不知道要什么角度、多长、给谁看,它就主动 Block 自己,在评论区留下了问题。

用  context  命令看看它到底在问什么:
hermes kanban context t_058c4d9c

输出大概长这样:

hermes   kanban context t_058c4d9c
# Kanban task t_058c4d9c: make a video about kanban

Assignee: video-worker
Status:     blocked
Tenant:     video-pipeline
Workspace: scratch @ /Users//.hermes/kanban/workspaces/t_058c4d9c

## Prior attempts on this task
### Attempt 1 — blocked (video-worker, 2026-05-10 20:59)
"make a video about kanban" — need spec: what angle (intro/tips/comparison/tutorial)? duration? audience level? existing source material? is there an article or blog post to convert, or start from   scratch?"

Agent 问得挺具体的:什么角度?多长?受众什么水平?有没有现成素材?

回答它:
hermes kanban comment t_058c4d9c  "做一个入门教程视频,时长1分钟左右,受众是完全不懂kanban的小白,基于我们之前的讨论内容来讲"
再解除阻塞:
hermes kanban unblock t_058c4d9c

Dispatcher 会重新调度这个任务, @video-worker  拿到你的回答后继续工作。

💡
踩坑提醒 : comment  和  unblock  是两步操作,别忘了 unblock。光留言不解除阻塞,任务是不会动的。

整个流程用一张表总结:

跑通这个基本流程,Hermes Kanban 你就已经能上手干活了。

进阶:一句话,让 Agent 自己拆任务

上篇文章发出来后,评论区问得最多的一个问题: 能不能在飞书里搞?

当时那篇讲的多 Agent 协作,要在 Discord 里配群组、配 bot、调 @mention,流程确实绕。不少人看完觉得"东西是好东西,但我团队用飞书啊"。

现在有了 Kanban,不用那么复杂了。你在飞书里发一句话,Agent 自己拆、自己跑、自己交接。

不用配 Discord 群组,不用调 bot 权限,不用管 @mention 那些坑。

前面的例子是你手动创建一个任务,Agent 来执行。

但任务复杂了怎么办?

比如"做一个 90 秒的 Hermes 介绍视频"——这明显不是一个 Agent 能搞定的,你得有人调研、有人写脚本、有人生成视频。

手动拆?可以,但累。

有了 Kanban,之前那套复杂的 IM 机器人配置直接省了,变成"对话即工作流"。

你只需要在飞书里说一句话: 💬
创建一个 Hermes Agent 功能介绍视频的任务,分配给 researcher 调研核心功能亮点,再让 writer 写视频脚本,最后让 video-worker 生成 90 秒横版视频。

Agent 收到后,自动拆成这样:
T1  t_f3021692  [researcher]    调研 Hermes Agent 核心功能亮点    ✅ ready
                       ↓
T2  t_391e4acc  [writer]        撰写 90 秒中文视频脚本            ⏳ 等待 T1
                       ↓
T3  t_8ca0e4dc  [video-worker]  生成 90 秒横版视频               ⏳ 等待 T2

T1 跑完后 T2 自动变成 Ready,T2 完成后 T3 接上。全程不需要你介入。

你在飞书里当甩手掌柜,Agent 在后台卷生卷死。

整个过程不需要写一行命令,不需要手动指定  --parent ,不需要管依赖关系——orchestrator 自己判断、自己建、自己跑。 🎯
这就是 Kanban 里 orchestrator 角色在干的事。你给它一个目标,它自动拆子任务、建依赖、分配 Agent。你在飞书里聊天就能驱动多 Agent 协作,跟给同事派活一样。

Dashboard 里也能实时看到每个子任务的状态,哪个在跑、哪个在等、哪个卡住了。

喜欢终端的话, hermes kanban watch  也能实时看任务的生命周期——created → linked → claimed → spawned → completed,每一步都有日志。

最终 video-worker 产出的视频长这样:

当然,学习阶段你想精确控制每一步,也可以自己手动创建任务链:

# 第一步
T1=$(hermes kanban create  "调研 Hermes 核心功能"  \
    --assignee researcher --tenant video-pipeline --json | jq -r . id )

# 第二步,依赖 T1
T2=$(hermes kanban create  "写视频脚本"  \
    --assignee writer --tenant video-pipeline \
    --parent  $T1  --json | jq -r . id )

# 第三步,依赖 T2
hermes kanban create  "生成视频 mp4"  \
    --assignee video-worker --tenant video-pipeline \
    --parent  $T2

两种模式的区别看这张图:

到这里,单个看板上的玩法就讲完了——从手动建单任务,到 Orchestrator 一句话自动拆,入门到进阶的主要场景都覆盖了。

但如果你跟我一样,同时在做公众号内容、客户项目、日常杂事,全堆在一个 default 看板上,任务一多就眼花。

Boards:一个项目一块看板

Hermes Kanban 支持多看板(Boards),每个 Board 的数据库、工作空间、调度器完全隔离。

下面这张图一看就懂:

操作也简单:

hermes kanban boards create blog-content     # 新建一个叫 blog-content 的看板
hermes kanban boards switch blog-content     # 切到这个看板
hermes kanban boards list                    # 看看有哪些看板
hermes kanban boards show                    # 当前在哪个看板

切到某个 Board 后,你所有的  hermes kanban  命令都只操作那个 Board,不影响其他的。

也可以不切换,直接用  --board  参数操作指定看板:
hermes kanban --board blog-content list
hermes kanban --board client-projects create  "做客户项目需求分析"  --assignee researcher

对比一下:

Boards 就是干这件事的:一个项目一块看板,互不干扰。

底下跑的是什么?聊聊核心机制

前面讲的都是怎么用,这里说说为什么跑得动。

整套系统围绕本地 SQLite 数据库转。每次 Agent 认领任务是原子事务——多个 Agent 竞争同一个任务时,只有一个能拿到,不会出现两个 Agent 同时干同一件事。

Agent 崩了?
Dispatcher 通过进程存活检测( kill(pid, 0) )自动发现,回收任务,重新分配。
连续失败三次还触发熔断,任务自动锁定等人工介入,不会让看板空转。

任务之间可以建父子依赖。
上游完成后的摘要和元数据自动传给下游 Agent。
T2(写脚本)能知道 T1(调研)发现了什么——不是靠"翻聊天记录",是结构化的数据交接。

拿我们刚跑的视频任务来说, hermes kanban show t_391e4acc  能看到 T2 的完整信息:
Task t_391e4acc: 撰写 Hermes Agent 功能介绍视频脚本
  status:      done
  assignee:   writer
  parents:    t_f3021692
  children:   t_8ca0e4dc

Body:
请根据 researcher 的调研结果,撰写一份 Hermes Agent 功能介绍视频脚本...
上游调研任务 workspace 路径: ~/.hermes/kanban/workspaces/t_f3021692/

Kanban 里每个任务有自己独立的 workspace 目录。
T1(researcher)跑完后,调研文档、notes、summary 都落在自己的 workspace 里。
T2 的 body 里写了上游 workspace 路径——writer 启动后直接去那个目录读文件,拿到 T1 的全部产出。

T1 完成时还会写一个 summary,说自己做了什么、产出了哪些文件、关键结论。
下游 Agent 同时看两样东西:T1 的 summary(快速了解全貌)和 T1 workspace 里的实际文件(拿具体内容)。

这就是 Kanban 的传参方式—— 文件式交接 + 任务状态推进 ,不是共享上下文。

官方文档里列了一些协作模式,挑几个常用的:

Web Dashboard 通过 WebSocket 实时推送事件,不用刷新页面就能看到任务状态变化。

跟 delegate_task 有什么区别?

如果你之前用过 Hermes 的  delegate_task (子 Agent 委派),可能会想:这跟 Kanban 有什么不一样?

一句话: delegate_task  是函数调用,Kanban 是工作队列。

要一个快速的问答结果,用  delegate_task 。
跨 Agent 的、需要人工介入的、要活过重启的复杂任务,用 Kanban。

两者可以共存——一个 Kanban Worker 执行任务的过程中,内部完全可以用  delegate_task  去问另一个 Agent 一个小问题。

写在最后

多 Agent 协作这件事,之前总觉得"演示看着酷,真用起来不太行"。

以前搞多 Agent,要么是一个 Agent 内部疯狂调子 Agent,上下文越来越乱;要么是多个 Agent 各跑各的,没有统一的地方看进度。
Kanban 把任务拆解、分配、执行、交接、失败重试、人工介入这些事情拉到了一个看板上。
打开 Dashboard 就能看到所有 Agent 在干什么、卡在哪、产出了什么。

如果你之前看过我那篇 Hermes 多 Agent 的文章,这篇算是它的实战升级版。
建议先从最简单的单任务跑起来,跑通了再试任务链,最后再玩 Orchestrator 自治拆解。

加入社群

我平时主要折腾 n8n 自动化、OpenClaw 和各种 AI Agent 实战,群里经常有人分享踩坑经验、工作流配置和新工具的第一手体验。
遇到问题群里问,看完文章群里聊。点击下方加入,一起搞。    

如果觉得不错,随手点个「赞」和「在看」,转发给需要的朋友吧~ 第一时间收到推送,记得给我个星标⭐